#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

//int main()
//{
//	do
//	{
//		printf("%d", 6);
//	} while (1);
//	return 0;
//}



//
//int cmp(const void* a, const void* b)
//{
//    return *(int*)b - *(int*)a;
//}
//
//#include <stdio.h>
//#include <stdlib.h>
//
//int max = -1;
//int rets;
//
//int dominantIndex(int* nums, int numsSize)
//{
//    for (int i = 0; i < numsSize; i++)
//    {
//        if (*(nums + i) > max)
//        {
//            max = *(nums + i);
//            rets = i;
//        }
//    }
//    qsort(nums, numsSize, sizeof(int), cmp);
//    if ((*nums) >= (*(nums + 1) * 2))
//        return rets;
//    else
//        return -1;
//
//}
//
//int main()
//{
//    int sum[] = { 0,0,0,1 };
//    int ret=dominantIndex(sum, 4);
//    printf("%d", ret);
//    return 0;
//}

int cmp(const void* a, const void* b)
{
    return *(int*)b - *(int*)a;
}
#include <stdlib.h>

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {
    int ch[2000] = { 0 };
    int a = 0;
    for (int i = 0; i < nums1Size; i++)
    {
        for (int j = 0; j < nums2Size; j++)
        {
            if (*(nums1 + i) == *(nums2 + j))
                ch[a++] = *(nums1 + i);
        }
    }
    int sz = sizeof(ch) / sizeof(ch[0]);
    qsort(ch, sz, sizeof(int), cmp);
    for (int i = 1; i < sz; i++)
    {
        if (ch[i - 1] == ch[i])
            ch[i - 1] = -1;
    }
    sz = sizeof(ch) / sizeof(ch[0]);
    int k = 0;
    for (int j = 0; j < sz; j++)
    {
        if (ch[j] >= 0)
        {
            *(returnSize + k) = ch[j];
            k++;
        }
    }
    return returnSize;
}



int main()
{
    int ch[] = { 4,9,5 };
    int ch1[] = { 9,4,9,8,4 };
    int ch2[300] = { 0 };
    intersection(ch, 3, ch1, 5, ch2);
    int sz = sizeof(ch2) / sizeof(ch2[0]);
    for (int i = 0; i < sz; i++)
        printf("%d ", ch[i]);
    return 0;
}